//
//package com.daka.tools;
//
//import open189.sign.ParamsSign;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.net.URLEncoder;
//import java.util.Random;
//import java.util.TreeMap;
//
//public class SendSMS {
//    //{"res_code":0,"identifier":"ZN2509","create_at":1399190667}
//    static Logger log = LoggerFactory.getLogger(SendSMS.class);
//
//    /**
//     * 电信系统验证码下发
//     *
//     * @param userPhone
//     * @return
//     * @throws Exception
//     */
//    public static String sendMsg9(String userPhone) throws Exception {
//        String sendSMSBasePath = "http://api.189.cn/v2/dm/randcode/send";
//        String access_token = AccesssToken.getAccessToken();
//        String token = Token.getToken(access_token);
//
//        String timestamp = DateUtil.getToday();
//        TreeMap<String, String> paramsMap1 = new TreeMap<String, String>();
//        paramsMap1.put("app_id", SMS.app_id);
//        paramsMap1.put("access_token", access_token);
//        paramsMap1.put("timestamp", timestamp);
//        paramsMap1.put("token", token);
//        paramsMap1.put("url", SMS.redirect_uri);
//        paramsMap1.put("phone", userPhone);
//        paramsMap1.put("exp_time", "2");
//
//        String postUrl = sendSMSBasePath + "?app_id="
//                + SMS.app_id + "&access_token=" + access_token + "&timestamp=" + URLEncoder.encode(timestamp, "UTF-8") + "";
//        String postEntity = "token=" + token
//                + "&phone=" + userPhone
//                + "&url=" + SMS.redirect_uri// 有开发者实现的验证码通知接口
//                + "&exp_time=" + "2"
//                + "&sign=" + ParamsSign.value(paramsMap1, SMS.app_secret);
//
//        return HttpInvoker.httpPost(postUrl, null, postEntity);
//    }
//
//    //{"res_code":0,"identifier":"ZN2509","create_at":1399190667}
//
//
//    //{"res_code":"0","res_message":"Success","idertifier":"90610519115436051079"}
//
//    /**
//     * 手机验证码消息
//     *
//     * @param userPhone
//     * @param randCode
//     * @return
//     * @throws Exception
//     */
//    public static String sendMsgFromTemplate(String userPhone, String randCode) throws Exception {
//        String access_token = AccesssToken.getAccessToken();
//        String para = "{\"code\":\"" + randCode + "\",\"time\":\"10\"}";
//        String timestamp = DateUtil.getToday();
//
//        String postUrl = "http://api.189.cn/v2/emp/templateSms/sendSms";
//        String postEntity = "app_id=" + SMS.app_id
//                + "&acceptor_tel=" + userPhone
//                + "&access_token=" + access_token
//                + "&template_id=91000900"
//                + "&template_param=" + para
//                + "&timestamp=" + timestamp;
//
//        return HttpInvoker.httpPost(postUrl, null, postEntity);
//    }
//
//    /**
//     * 超级管理员审核通过消息
//     *
//     * @param userPhone
//     * @param msg
//     * @return
//     * @throws Exception
//     */
//    public static String sendNotificationFromTemplate(String userPhone, String msg) throws Exception {
//        String access_token = AccesssToken.getAccessToken();
//        String para = "{\"account\":\"" + URLEncoder.encode(msg, "UTF-8") + "\"}";
//        String timestamp = DateUtil.getToday();
//
//        String postUrl = "http://api.189.cn/v2/emp/templateSms/sendSms";
//        String postEntity = "app_id=" + SMS.app_id
//                + "&acceptor_tel=" + userPhone
//                + "&access_token=" + access_token
//                + "&template_id=91001398"
//                + "&template_param=" + para
//                + "&timestamp=" + timestamp;
//
//        return HttpInvoker.httpPost(postUrl, null, postEntity);
//    }
//
//    /**
//     * 超级管理员审核拒绝消息
//     *
//     * @param userPhone
//     * @param msg
//     * @return
//     * @throws Exception
//     */
//    public static String sendRefuseNotificationFromTemplate(String userPhone, String msg) throws Exception {
//        String access_token = AccesssToken.getAccessToken();
//        String para = "{\"cause\":\"" + URLEncoder.encode(msg, "UTF-8") + "\"}";
//        String timestamp = DateUtil.getToday();
//
//        String postUrl = "http://api.189.cn/v2/emp/templateSms/sendSms";
//        String postEntity = "app_id=" + SMS.app_id
//                + "&acceptor_tel=" + userPhone
//                + "&access_token=" + access_token
//                + "&template_id=91001448"
//                + "&template_param=" + para
//                + "&timestamp=" + timestamp;
//
//        return HttpInvoker.httpPost(postUrl, null, postEntity);
//    }
//
//    //主管单位审核通过
//    public static String sendDepartmentNotificationFromTemplate(String userPhone, String deparmentName, String account) throws Exception {
//        String access_token = AccesssToken.getAccessToken();
//        //String para = "{\"code\":\""+randCode+"\",\"time\":\"10\"}";
//        String para = "{\"account\":\"" + account + "\",\"department\":\"" + URLEncoder.encode(deparmentName, "UTF-8") + "\"}";
//        String timestamp = DateUtil.getToday();
//
//        String postUrl = "http://api.189.cn/v2/emp/templateSms/sendSms";
//        String postEntity = "app_id=" + SMS.app_id
//                + "&acceptor_tel=" + userPhone
//                + "&access_token=" + access_token
//                + "&template_id=91003908"
//                + "&template_param=" + para
//                + "&timestamp=" + timestamp;
//
//        return HttpInvoker.httpPost(postUrl, null, postEntity);
//    }
//
//    //主管单位审核拒绝
//    public static String sendRefuseDepartmentNotificationFromTemplate(String userPhone, String deparmentName, String msg) throws Exception {
//        String access_token = AccesssToken.getAccessToken();
//        String para = "{\"case\":\"" + URLEncoder.encode(msg, "UTF-8") + "\",\"deparment\":\"" + URLEncoder.encode(deparmentName, "UTF-8") + "\"}";
//        //String para = "{\"cause\":\""+URLEncoder.encode(msg, "UTF-8")+"\"}";
//        String timestamp = DateUtil.getToday();
//
//        String postUrl = "http://api.189.cn/v2/emp/templateSms/sendSms";
//        String postEntity = "app_id=" + SMS.app_id
//                + "&acceptor_tel=" + userPhone
//                + "&access_token=" + access_token
//                + "&template_id=91003907"
//                + "&template_param=" + para
//                + "&timestamp=" + timestamp;
//
//        return HttpInvoker.httpPost(postUrl, null, postEntity);
//    }
//
//    //{"res_code":"0","res_message":"设置成功"}
//    private static String setAppUrl(String url) throws Exception {
//        String postUrl = "http://api.189.cn/v2/EMP/nsagSms/appnotify/setappurl";
//        String access_token = AccesssToken.getAccessToken();
//
//        String timestamp = DateUtil.getToday();
//        TreeMap<String, String> paramsMap1 = new TreeMap<String, String>();
//        paramsMap1.put("app_id", SMS.app_id);
//        paramsMap1.put("access_token", access_token);
//        paramsMap1.put("timestamp", timestamp);
//        paramsMap1.put("api_url", url);
//        paramsMap1.put("api_type", "2");
//
//
//        postUrl = postUrl + "?app_id="
//                + SMS.app_id + "&access_token=" + access_token + "&timestamp=" + URLEncoder.encode(timestamp, "UTF-8") + "";
//        String postEntity = "api_type=2"
//                + "&api_url=" + url
//                + "&sign=" + ParamsSign.value(paramsMap1, SMS.app_secret);
//
//        return HttpInvoker.httpPost(postUrl, null, postEntity);
//
////		app_id	true	string	应用ID，开发者创建应用时，天翼开放平台会为应用自动分配此ID，开发者进入"管理中心"，在“应用详情”中可查看app_id。
////		access_token	true	string	访问令牌，是调用平台能力接口的通行证，可通过调用"令牌接口"获得。
////		api_type	true	string	接口类型，1表示上行消息接收地址（暂不支持），2表示状态报告接收接口地址。
////		api_url	true	string	消息接收地址。
////		timestamp	true	string	时间戳，格式为：yyyy-MM-dd HH:mm:ss
//
//
//    }
//
//    //{"res_code":"0","identifier":"90610519115436051079","status ":"1","res_message":""}
//    private static String querySmsStatus(String identifier) throws Exception {
//
////		app_id	true	string	应用ID，开发者创建应用时，天翼开放平台会为应用自动分配此ID，开发者进入"管理中心"，在“应用详情”中可查看app_id。
////		access_token	true	string	访问令牌，是调用平台能力接口的通行证，可通过调用"令牌接口"获得。
////		identifier	true	string	短信唯一标识，成功调用“发送模板短信”接口时返回。
////		timestamp	true	string	时间
//
//        String postUrl = "http://api.189.cn/v2/EMP/nsagSms/appnotify/querysmsstatus";
//        String access_token = AccesssToken.getAccessToken();
//
//        String timestamp = DateUtil.getToday();
//        TreeMap<String, String> paramsMap1 = new TreeMap<String, String>();
//        paramsMap1.put("app_id", SMS.app_id);
//        paramsMap1.put("access_token", access_token);
//        paramsMap1.put("timestamp", timestamp);
//        paramsMap1.put("identifier", identifier);
//
//
//        postUrl = postUrl + "?app_id="
//                + SMS.app_id + "&access_token=" + access_token + "&timestamp=" + URLEncoder.encode(timestamp, "UTF-8") + "";
//        String postEntity = "identifier=" + identifier
//                + "&sign=" + ParamsSign.value(paramsMap1, SMS.app_secret);
//
//        return HttpInvoker.httpPost(postUrl, null, postEntity);
//    }
//
//    private static int get4Rand() {
//        Random rand = new Random();
//        int tmp = Math.abs(rand.nextInt());
//        return tmp % (9999 - 1000 + 1) + 1000;
//    }
//
//    private static int get6Rand() {
//        Random rand = new Random();
//        int tmp = Math.abs(rand.nextInt());
//        return tmp % (999999 - 100000 + 1) + 100000;
//    }
//
//    public static void main(String[] args) {
//        try {
//            //系统发验证码
//            //System.out.println(sendMsg("15821117931"));
//            //自定义验证码
//            //System.out.println(sendMsgFromTemplate2("18939731511",String.valueOf(getRand())));
//            //System.out.println(sendMsgFromTemplate9("15821117931", "1234"));
//            //模板发
//            System.out.println(sendMsgFromTemplate("15821117931", String.valueOf(get4Rand())));
//            //审核通过
//            //System.out.println(sendNotificationFromTemplate("18916666237","感谢您一年的志愿服务"));
//            //审核拒绝
//            //System.out.println(sendRefuseNotificationFromTemplate("18939731511","  感谢您一年的志愿服务，南通团市委给您准备了专属福利，赶紧去志愿者打卡器看看吧。"));
//            //System.out.println(sendDepartmentNotificationFromTemplate("17091266898","共青团南通市委","nt001"));
//            //System.out.println(sendRefuseDepartmentNotificationFromTemplate("17091266898","共青团南通市委","不是本单位成员"));
//            //模板短信消息接收地址设置
//            //System.out.println(setAppUrl("http://www.dakaqi.cn/sms/receive-sms.action"));
//            //模板短信状态报告查询
//            //System.out.println(querySmsStatus("90610519115436051079"));
//        } catch (Exception e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//            log.error(e.getMessage());
//
//        }
//    }
//
//}
